package com.sw.bbs.board.dao;

import com.sw.bbs.board.pojo.Comment;
import com.sw.bbs.board.pojo.Post;
import com.sw.bbs.board.vo.request.post.QueryPostRequest;
import com.sw.bbs.board.vo.response.post.PostDetailResponse;
import com.sw.bbs.board.vo.response.post.PostListResponse;
import com.sw.bbs.board.vo.response.post.PostOperaResponse;
import com.sw.bbs.user.vo.response.UserListResponse;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface PostMapper {
    int deleteByPrimaryKey(Integer postId);

    int insert(Post record);

    int insertSelective(Post record);

    Post selectByPrimaryKey(Integer postId);

    int updateByPrimaryKeySelective(Post record);

    int updateByPrimaryKeyWithBLOBs(Post record);

    int updateByPrimaryKey(Post record);




    /**
     * 列表
     * @param queryPostRequest
     * @return
     */
    List<PostListResponse> queryPostList(QueryPostRequest queryPostRequest);
    /**
     * 根据用户ID获取用户创建的板块
     * @param userId
     * @return
     */
    List<Post> queryPostsByUserId(@Param("userId") Integer userId);


    /**
     * 根据用户ID跟类型获取板块
     * @param userId
     * @return
     */
    List<PostOperaResponse> queryPostByType(@Param("userId") Integer userId, @Param("type") Integer type);


    /**
     * 用户信息
     * @param postId
     * @return
     */
    UserListResponse queryUserByPostId(@Param("postId") Integer postId);


}